const path = require('path');
module.exports = {
  // 本地服务器配置 webpakc-dev-server相关配置
  devServer: {
    open: true,
    port: 9999
    // host: '0.0.0.0',
    // proxy: {
    //   '/api': {
    //     target: 'http://www.baidu.com/api',
    //     changeOrigin: true, // 允许websockets跨域
    //     // ws: true,
    //     pathRewrite: {
    //       '^/api': ''
    //     }
    //   }
    // } // 代理转发配置，用于调试环境
  },
  // css相关配置
  css: {
    // 启用css moodules
    modules: false,
    // 是否使用css分离插件
    extract: true,
    // 开启css source maps？
    sourceMap: false,
    // css预设器配置项
    loaderOptions: {
      sass: {
        // 新版本sass-loader， 将data改成prependData进行配置
        data: `@import "@/assets/scss/_variable.scss";`
      }
    }
  },
  // 基本路径，vue.cli3.3以前请使用baseUrl

  // publicPach: '/'
  // 输出文件目录
  outputDir: 'dist',
  // 用于嵌套生成静态资产（js,css,img,fonts）的目录。
  assetsDir: 'static',
  // 打包时不生成.map文件
  productionSourceMap: false,
  // webpack配置
  // configureWbpack: () => {},
  chainWebpack: config => {
    const svgRule = config.module.rule('svg');
    // 清除已有的所有 loader。
    // 如果你不这样做，接下来的 loader 会附加在该规则现有的 loader 之后。
    svgRule.uses.clear();
    svgRule
      .test(/\.svg$/)
      .include.add(path.resolve(__dirname, './src/icons'))
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]'
      });
    const fileRule = config.module.rule('file');
    fileRule.uses.clear();
    fileRule
      .test(/\.svg$/)
      .exclude.add(path.resolve(__dirname, './src/icons'))
      .end()
      .use('file-loader')
      .loader('file-loader');
  }
};
